/**
 * @typedef {Object} CategoryQuery
 * @property {string} [name] - 分类名称
 * @property {number} [status] - 分类状态(0:禁用,1:启用)
 * @property {number} [page] - 当前页码
 * @property {number} [pageSize] - 每页条数
 */

/**
 * @typedef {Object} Category
 * @property {number} id - 分类ID
 * @property {string} name - 分类名称
 * @property {number} sort - 排序号
 * @property {number} status - 状态(0:禁用,1:启用)
 * @property {string} create_time - 创建时间
 * @property {string} update_time - 更新时间
 */

/**
 * @typedef {Object} CategoryListResult
 * @property {Category[]} list - 分类列表
 * @property {number} total - 总记录数
 */

import request from '@utils/request'

// 获取分类列表
export function getCategories(params) {
  return request({
    url: '/admin/categories',
    method: 'get',
    params
  })
}

// 为了向后兼容，添加别名
export const getAllCategories = getCategories
export const getCategoryList = getCategories  // 添加新的别名

// 获取分类树
export function getCategoryTree(params) {
  return request({
    url: '/admin/categories/tree',
    method: 'get',
    params
  })
}

// 获取分类详情
export function getCategoryDetail(id) {
  return request({
    url: `/admin/categories/${id}`,
    method: 'get'
  })
}

// 创建分类
export function createCategory(data) {
  return request({
    url: '/admin/categories',
    method: 'post',
    data
  })
}

// 更新分类
export function updateCategory(id, data) {
  return request({
    url: `/admin/categories/${id}`,
    method: 'put',
    data
  })
}

// 删除分类
export function deleteCategory(id) {
  return request({
    url: `/admin/categories/${id}`,
    method: 'delete'
  })
}

// 批量删除分类
export function batchDeleteCategories(ids) {
  return request({
    url: '/admin/categories/batch',
    method: 'delete',
    data: { ids }
  })
}

// 更新分类状态
export function updateCategoryStatus(id, status) {
  return request({
    url: `/admin/categories/${id}/status`,
    method: 'put',
    data: { status }
  })
}

// 批量更新分类状态
export function batchUpdateCategoryStatus(ids, status) {
  return request({
    url: '/admin/categories/batch/status',
    method: 'put',
    data: { ids, status }
  })
}

// 更新分类排序
export function updateCategorySort(id, sort) {
  return request({
    url: `/admin/categories/${id}/sort`,
    method: 'put',
    data: { sort }
  })
}

// 批量更新分类排序
export function batchUpdateCategorySort(data) {
  return request({
    url: '/admin/categories/batch/sort',
    method: 'put',
    data
  })
}

// 上传分类图标
export function uploadCategoryIcon(data) {
  return request({
    url: '/admin/upload/category-icon',
    method: 'post',
    data
  })
}

// 获取分类统计数据
export function getCategoryStats() {
  return request({
    url: '/admin/categories/stats',
    method: 'get'
  })
}

// 导出分类数据
export function exportCategories(params) {
  return request({
    url: '/admin/categories/export',
    method: 'get',
    params,
    responseType: 'blob'
  })
} 